//数字, 字符串, 布尔, 列表(类似于数组), 集合, 映射, 符文(用于表示字符串中的Unicode字符), 符号(Symbol)

//------------------数字------------------
var number1 = 123;
var numberHex = 0xAB55;

var number3 = 1.199;
var number4 = 1.15e5;

double number5 = 10;

int number6 = 10;

//字符串转int、double
var number7 = int.parse("1");
var number8 = double.parse("1.1");

//double 转 String 保留2位小数
var number9 = 3.14169.toStringAsFixed(2);
//------------------数字------------------

//------------------字符串------------------
//字符串代表一系列字符,Dat字符串是一系列UTF-16代码单元。符文用于表示UTF-32代码单元序列。

testString() {
  var s1 = 'single quotes work we11 for string litera1s ,';
  var s2 = "Double quotes work just as we11.";
  var world = "world";
  print("Hello $world" + "!");
  var s3 = """
  H
  o
  """;
}
//------------------字符串------------------

//------------------bool------------------

testBool() {
  bool a = false;

  print(''.isEmpty);

  var unicornl;
  print(unicornl == null);

  var d = 0 / 0;
  print(d.isNaN);
}
//------------------bool------------------

//------------------List------------------
//在Dart中，数组是List对象，因此大多数人将它称为列表。
testList() {
  List<String> d1 = [];
  var list = [1, -2, 3];
  list[1] = 2;
  //要创建一个编译时常量的列表，请在列表文字之前添加 const
  var constList = const [11, 2];
  // constList[0] = 1;//崩溃：Unsupported operation: Cannot modify an unmodifiable list

  var list2 = [1, list]; //[1, [1, 2, 3]]
  var list3 = [1, ...list]; //[1, 1, 2, 3]
  print(list2);
  print(list3);

  var list4;
  var list5 = [0, ...?list4];

  var list6 = ['#0', for (var i in list) '#$i']; //[#0, #1, #2, #3]
  print(list6);
}
//------------------List------------------

//------------------set------------------
testSet() {
  var set1 = {"a", "b", "a"}; //{a, b}
  print(set1);

  //创建空集合
  var set2 = <String>{}; //不指定类型就是Map了
  Set<String> set3 = {};
}

//------------------set------------------

//------------------Map------------------
testMap() {
  var map = Map();
  var map1 = {
    "a": "1",
    "b": "2",
    "c": "3",
  };
  map1['a'];
  var map2 = {
    1: "a",
    2: "b",
    3: "c",
  };
  map2[2] = "bb";
}

//------------------Map------------------

//符文（表情符号）
//------------------Rune------------------

testRune() {
  //表示 Unicode 编的常用方法是，uxxxx,这里 XXXX 是一个4位的16进制数。例如，心形符号(♥)是\u2665。对于特殊的非4个数值的情况，把编码值放到大括号中即可。 例如，emoji 的笑脸(😀)是 u(1f600)。
  Runes input = Runes('\u2665 \u{1f605} \u{1f60e} \u{1f47b} \u{1f600} ');
  print(String.fromCharCodes(input));
}

//------------------Rune------------------
main() {
  testRune();
}
